package com.google.code.lf.gfm.model.grisbi.tiers;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

import com.google.code.lf.commons.util.ToStringHelper;

/**
 * Bean représentant la liste des tiers dans le fichier de données <a href="http://grisbi.org/">Grisbi</a>.
 * <br/>Le binding bean/xml utilise <a href="https://jaxb.dev.java.net/">JAXB</a>.
 * 
 * @see GrisbiFile.
 */
@XmlRootElement(name="Echeances")
@XmlAccessorType(XmlAccessType.NONE)
@SuppressWarnings("unused")
public class TiersListe {
	@XmlElement(name="Generalites")
	private TiersGeneralites generalites;

	@XmlElementWrapper(name="Detail_des_tiers")
	@XmlElement(name="Tiers")
	private List<Tiers> tiersListe;

	public static class TiersGeneralites {
		@XmlElement(name="Nb_tiers")
		private int nbTiers;

		@XmlElement(name="No_dernier_tiers")
		private int idDernierTiers;

		/* (non-Javadoc)
		 * @see java.lang.Object#toString()
		 */
		@Override
		public String toString() {
			return ToStringHelper.toString(this);
		}
	}


	/**
	 * Méthode <code>toString()</code> utilisant la réflection pour détailler l'objet.
	 * 
	 * @see ToStringHelper#toString()
	 */
	@Override
	public String toString() {
		return ToStringHelper.toString(this);
	}

	// -- Getters / Setters

	/**
	 * @return {@link #tiersListe}, la liste de {@link Tiers}, jamais <code>null</code>.
	 */
	public List<Tiers> getTiersListe() {
		if (tiersListe == null) tiersListe = new ArrayList<Tiers>();
		return tiersListe;
	}
}
